#include <bits/stdc++.h>
#define int unsigned long long // 注意这里面因为数字比较大, 所以使用  u long long 
using namespace std;

const int maxn = 1e6 +10;
const int base=131; // 一个 质数
int h1[maxn], h2[maxn], bs[maxn]; // 两个字符串的 hash, 以及 base 数组记录 base 的多少次方
char p[maxn], s[maxn];

// 获取区间 [l, r] 之间的 hash 值
int getHash(int h[], int l, int r){
	return h[r]-h[l-1]*bs[r-l+1];
}

void solve(){
	cin>>(p+1);
	cin>>(s+1);
	int m=strlen(p+1);
	int n=strlen(s+1);
	
//	 计算字符串 hash 的公式就是 h[i] = h[i-1]*base + s[i]  其中 base 最好是一个质数, 131 13331 是质数, 1331 不是
//	 并且最好直接使用  s[i] 的 ASCII , 不要 s[i]-'a', 因为这样可能导致 a aa aaa aaaa... 的 hash 都是 0
	bs[0]=1;
	for (int i=1;i<=n;i++) {
		bs[i]=bs[i-1]*base;
		h1[i]=h1[i-1]*base+(int)p[i];
		h2[i]=h2[i-1]*base+(int)s[i];
	}
	int ans=0;
	
	int ph=getHash(h1, 1, m);
	for (int i=1;i+m-1<=n;i++) {
		if (ph==getHash(h2, i, i+m-1)) {
			ans++;
		}
	}
	cout << ans <<'\n';
}





signed main(){
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	solve();
	return 0;
}
